package uk.org.scuts.bantstadium2;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import uk.org.scuts.bantstadium2.attacks.Attack;
import uk.org.scuts.bantstadium2.attacks.Bite;
import uk.org.scuts.bantstadium2.attacks.BitingSarcasm;
import uk.org.scuts.bantstadium2.attacks.FlipOff;
import uk.org.scuts.bantstadium2.attacks.Intimidate;
import uk.org.scuts.bantstadium2.attacks.Jab;
import uk.org.scuts.bantstadium2.attacks.Kick;
import uk.org.scuts.bantstadium2.attacks.Punch;
import uk.org.scuts.bantstadium2.attacks.Slap;
import uk.org.scuts.bantstadium2.attacks.ThreeRoundBurst;

public class AttackManager {
	
	// Constructors
	public AttackManager() {
		_map = new HashMap<String, Attack>();
		_map.put("Bite", new Bite());
		_map.put("Biting Sarcasm", new BitingSarcasm());
		_map.put("Flip Off", new FlipOff());
		_map.put("Jab", new Jab());
		_map.put("Kick", new Kick());
		_map.put("Intimidate", new Intimidate());
		_map.put("Punch", new Punch());
		_map.put("Slap", new Slap());
		_map.put("Three Round Burst", new ThreeRoundBurst());
	}
	
	// Methods
	public Attack at(String key) {
		return _map.get(key);
	}
	
	public ArrayList<String> GetAttackNames() {
		ArrayList<String> ret = new ArrayList<String>(_map.keySet());
		return ret;
	}
	
	// Members
	Map<String, Attack> _map;
}
